package com.bytenose.extrautils.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * A marker annotation to mark classes, methods, and fields which
 * are thread safe.
 * In the context of this annotation, thread safety means that the
 * the annotated element has been engineered with thread safety in mind.
 * This annotation has a {@code RUNTIME} retention policy.
 * This annotation may be used only on methods, and types.
 * If the annotation is used on a type, all its method are to be
 * considered as thread safe.
 * @author Mauro Luigi Drago
 *
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
public @interface ThreadSafe {
}
